#define DEBUG
#include <cstdio>

using namespace std;

const int maxn=100000;

class Point {
	public:
		long long x, y;

		Point() {}

		Point(int _x, int _y) {
			x=_x, y=_y;
		}
};

bool check(Point &a, Point &b, Point &c) {
	return a.x<b.x ? c.x*(a.y-b.y)+a.y*(a.x-b.x)-a.x*(a.y-b.y)<c.y*(a.x-b.x) : c.x*(a.y-b.y)+a.y*(a.x-b.x)-a.x*(a.y-b.y)>c.y*(a.x-b.x);
}

int main() {
#ifdef DEBUG
	freopen("src.in", "r", stdin);
	freopen("src.out", "w", stdout);
#endif

	static int f[maxn+2];
	int n;
	scanf("%d", &n);
	for (int i=1; i<=n; i++) {
		scanf("%d", f+i);
	}

	static Point st[maxn+1];
	int sn=0;
	for (int i=0; i<=n+1; i++) {
		if (sn<2) {
			st[++sn].x=i;
			st[sn].y = f[i];
		} else {
			Point now(i, f[i]);
			for (; sn>=2 && check(st[sn-1], now, st[sn]); sn--);
			st[++sn] = now;
		}
	}

	for (int i=1, p=1; i<=n; i++) {
		for (; p<=sn && st[p].x<i; p++);
		if (st[p].x==i) {
			printf("%lld\n", st[p].y*100000);
		} else {
			Point a=st[p-1], b=st[p];
			printf("%lld\n", 100000*(i*(a.y-b.y)+a.y*(a.x-b.x)-a.x*(a.y-b.y))/(a.x-b.x));
		}
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}
